package br.com.cnpv.modelo.entity;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="evento")
@NamedQueries(
			@NamedQuery(name="Evento.obtemTotal", query="select e from Evento e where e.dtEvento like :dtEvento and e.idAssociacao = :idAssociacao")
		)
public class Evento {
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id")
	private Integer id;
	
	@Column(name="codigo_evento")
	private String codigoEvento;
	
	@Column(name="id_associacao")
	private Integer idAssociacao;
	
	@Column(name="id_oficina")
	private Integer idOficina;
	
	@Column(name="id_veiculo_cliente")
	private Integer idVeiculoCliente;
	
	@Column(name="id_tipo_evento")
	private Integer idTipoEvento;
	
	@Column(name="id_usuario")
	private Integer idUsuario;
	
	@Column(name="id_cliente")
	private Integer idCliente;
	
	@Column(name="dt_evento")
	private Date dtEvento;
	
	@Column(name="dt_aviso")
	private Date dtAviso;
	
	@Column(name="local_evento")
	private String localEvento;
	
	@Column(name="dt_ini_servico")
	private Date dtIniServico;
	
	@Column(name="dt_fim_servico")
	private Date dtFimServico;
	
	@Column(name="nm_condutor")
	private String nmCondutor;
	
	@Column(name="cnh_condutor")
	private String cnhCondutor;
	
	@Column(name="dt_validade_cnh_condutor")
	private Date dtValidadeCnhCondutor;
	
	@Column(name="idade_condutor")
	private Integer idadeCondutor;
	
	@Column(name="num_brat")
	private String numBrat;
	
	@Column(name="data_brat")
	private Date dataBrat;
	
	@Column(name="delegacia_policial")
	private String delegaciaPolicial;
	
	@Column(name="ds_obs")
	private String dsObs;
	
	@Column(name="dt_incl")
	private Date dtIncl;
	
	@Column(name="dt_alter")
	private Date dtAlter;
	
	@Column(name="dt_inat")
	private Date dtInat;
	
	@OneToMany(fetch=FetchType.LAZY)
	@JoinColumn(name="id_evento", insertable=false, updatable=false, referencedColumnName="id")
	private List<VistoriaEvento> vistoriaEventoList;
	
	@OneToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_associacao", insertable=false, updatable=false, referencedColumnName="id")
	private Associacao associacao;
	
	@OneToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_veiculo_cliente", insertable=false, updatable=false, referencedColumnName="id")
	private VeiculoCliente veiculoCliente;
	
	public String getCodigoEvento() {
		return codigoEvento;
	}

	public void setCodigoEvento(String codigoEvento) {
		this.codigoEvento = codigoEvento;
	}

	public Integer getIdAssociacao() {
		return idAssociacao;
	}

	public void setIdAssociacao(Integer idAssociacao) {
		this.idAssociacao = idAssociacao;
	}

	public Integer getIdOficina() {
		return idOficina;
	}

	public void setIdOficina(Integer idOficina) {
		this.idOficina = idOficina;
	}

	public Integer getIdVeiculoCliente() {
		return idVeiculoCliente;
	}

	public void setIdVeiculoCliente(Integer idVeiculoCliente) {
		this.idVeiculoCliente = idVeiculoCliente;
	}

	public Integer getIdTipoEvento() {
		return idTipoEvento;
	}

	public void setIdTipoEvento(Integer idTipoEvento) {
		this.idTipoEvento = idTipoEvento;
	}

	public Integer getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(Integer idUsuario) {
		this.idUsuario = idUsuario;
	}

	public Integer getIdCliente() {
		return idCliente;
	}

	public void setIdCliente(Integer idCliente) {
		this.idCliente = idCliente;
	}

	public Date getDtEvento() {
		return dtEvento;
	}

	public void setDtEvento(Date dtEvento) {
		this.dtEvento = dtEvento;
	}

	public Date getDtAviso() {
		return dtAviso;
	}

	public void setDtAviso(Date dtAviso) {
		this.dtAviso = dtAviso;
	}

	public String getLocalEvento() {
		return localEvento;
	}

	public void setLocalEvento(String localEvento) {
		this.localEvento = localEvento;
	}

	public Date getDtIniServico() {
		return dtIniServico;
	}

	public void setDtIniServico(Date dtIniServico) {
		this.dtIniServico = dtIniServico;
	}

	public Date getDtFimServico() {
		return dtFimServico;
	}

	public void setDtFimServico(Date dtFimServico) {
		this.dtFimServico = dtFimServico;
	}

	public String getNmCondutor() {
		return nmCondutor;
	}

	public void setNmCondutor(String nmCondutor) {
		this.nmCondutor = nmCondutor;
	}

	public String getCnhCondutor() {
		return cnhCondutor;
	}

	public void setCnhCondutor(String cnhCondutor) {
		this.cnhCondutor = cnhCondutor;
	}

	public Date getDtValidadeCnhCondutor() {
		return dtValidadeCnhCondutor;
	}

	public void setDtValidadeCnhCondutor(Date dtValidadeCnhCondutor) {
		this.dtValidadeCnhCondutor = dtValidadeCnhCondutor;
	}

	public Integer getIdadeCondutor() {
		return idadeCondutor;
	}

	public void setIdadeCondutor(Integer idadeCondutor) {
		this.idadeCondutor = idadeCondutor;
	}

	public String getNumBrat() {
		return numBrat;
	}

	public void setNumBrat(String numBrat) {
		this.numBrat = numBrat;
	}

	public Date getDataBrat() {
		return dataBrat;
	}

	public void setDataBrat(Date dataBrat) {
		this.dataBrat = dataBrat;
	}

	public String getDelegaciaPolicial() {
		return delegaciaPolicial;
	}

	public void setDelegaciaPolicial(String delegaciaPolicial) {
		this.delegaciaPolicial = delegaciaPolicial;
	}

	public String getDsObs() {
		return dsObs;
	}

	public void setDsObs(String dsObs) {
		this.dsObs = dsObs;
	}

	public Date getDtIncl() {
		return dtIncl;
	}

	public void setDtIncl(Date dtIncl) {
		this.dtIncl = dtIncl;
	}

	public Date getDtAlter() {
		return dtAlter;
	}

	public void setDtAlter(Date dtAlter) {
		this.dtAlter = dtAlter;
	}

	public Date getDtInat() {
		return dtInat;
	}

	public void setDtInat(Date dtInat) {
		this.dtInat = dtInat;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getId() {
		return id;
	}

	public List<VistoriaEvento> getVistoriaEventoList() {
		return vistoriaEventoList;
	}

	public void setVistoriaEventoList(List<VistoriaEvento> vistoriaEventoList) {
		this.vistoriaEventoList = vistoriaEventoList;
	}

	public Associacao getAssociacao() {
		return associacao;
	}

	public void setAssociacao(Associacao associacao) {
		this.associacao = associacao;
	}

	public VeiculoCliente getVeiculoCliente() {
		return veiculoCliente;
	}

	public void setVeiculoCliente(VeiculoCliente veiculoCliente) {
		this.veiculoCliente = veiculoCliente;
	}
}